Новости IT, Tech-лайфхаки & Кодинг

Решение задач Python LeetCode



Задача на алгоритм для работы со связным списком в Python. Требуется удалить N-й узел с конца односвязного списка, сохранив структуру данных. Задача проверяет умение эффективно манипулировать связными списками с использованием алгоритма двух указателей (fast and slow), который решает проблему за один проход без дополнительной памяти.

Задача относится к алгоритмам и структуре данных. Надо найти все уникальные четверки целых чисел из заданного массива nums, сумма которых равна целевому значению target. Четверки должны состоять из элементов с различных индексов, а результат не должен содержать дубликатов. Задача требует эффективного поиска и обработки повторяющихся значений.

Задача относится к алгоритмическим задачам на комбинаторику и рекурсивный перебор (backtracking). Дана строка, содержащая цифры от 2 до 9 включительно. Нужно вернуть все возможные буквенные комбинации, которые могут быть представлены этим числом, согласно стандартному сопоставлению цифр и букв на кнопках телефона.

Дан массив целых чисел nums длины n и целое число target. Найдите три числа в массиве nums, сумма которых наиболее близка к target. Верните сумму этих трех чисел. Можно предположить, что для каждого входного набора существует ровно одно решение.

Алгоритмы. Дан массив целых чисел «nums». Необходимо вернуть все возможные тройки элементов «[nums[i], nums[j], nums[k]]», такие что, индексы удовлетворяют условиям: $i \neq j$, $i \neq k$ и $j \neq k$, а сумма элементов тройки равна нулю.


Алгоритмы. Реализуйте функцию myAtoi(string s), которая преобразует строку в 32-битное целое число со знаком. Игнорируйте любые начальные пробелы (» «). Определите знак числа, проверив, является ли следующий символ ‘-‘ или ‘+’. Если ни один из символов не присутствует, предполагается положительное число. Считайте число, пропуская ведущие нули, пока не встретится нецифровой символ или не будет достигнут конец строки.

Алгоритмы. Дано целое число x со знаком, представленное в 32-битном формате. Необходимо вернуть число x с обратным порядком цифр. Если при переворачивании цифр число выходит за пределы диапазона 32-битных целых чисел со знаком [-2³¹, 2³¹ — 1], то следует вернуть 0.

Задача на алгоритмы. Строка PAYPALISHIRING записывается в виде зигзагообразного узора на заданном количестве строк. Необходимо написать функцию, которая преобразует заданную строку в такой зигзагообразный формат и возвращает результат в виде новой строки.


Алгоритм. Римские цифры представлены семью разными символами: I, V, X, L, C, D и M. Например, 2 записывается как II римскими цифрами, состоящими из двух единиц. 12 записывается как XII, то есть просто X + II. Преобразуйте римские цифры в целое число.

Алгоритм. Семь различных символов обозначают римские цифры. Если значение не начинается с 4 или 9, выберите символ максимального значения. Если значение начинается с 4 или 9, используйте субтрактивную форму.

Алгоритм. Дан целочисленный массив высотой длины n. Нарисовано n вертикальных линий, конечными точками которых являются (i, 0) и (i, высота[i]). Найдите две линии, которые вместе с осью X образуют контейнер, в котором содержится больше всего воды.

Алгоритм. Учитывая входную строку s и шаблон p, реализовать сопоставление регулярных выражений с поддержкой «.» и «*» где: «.» Соответствует любому отдельному символу. «*» соответствует нулю или предыдущему элементу. Сопоставление должно охватывать всю входную строку (не частично).


Алгоритм. Даны два непустых связанных списка, представляющих два неотрицательных целых числа. Цифры хранятся в обратном порядке, и каждый из их узлов содержит одну цифру. Сложите два числа и верните сумму в виде связанного списка.